In [1]:
%pylab inline
import matplotlib.pyplot as plt

from scipy.optimize import fsolve

from ipywidgets import *
Populating the interactive namespace from numpy and matplotlib
In [2]:
def func(t,param1):
    V, om, r, fi = param1 # r in units of R, om in units of om=omega*R/c
    
    tmp= t-V*r*sin(om*t+fi)
    return(tmp)
    
In [3]:
def trafo(t,param):
    V, om, r, fi = param # r in units of R, om in units of om=omega*R/c
    gamma=1/sqrt(1-V**2)
    xv=gamma*(-V+r*sin(om*t+fi))
    zv=r*cos(om*t+fi)
    return([xv,zv])
In [4]:
def flywheel(r,fi,param):
    V, om = param # r in units of R, om in units of om=omega*R/c
    param1 = [param[0],param[1],r, fi]

    tsol=fsolve(func,0,param1)
    
    #  Lorentz-trafo
    gamma=1/sqrt(1-V**2)
    xv=gamma*(-V*tsol+r*sin(om*tsol[0]+fi))
    zv=r*cos(om*tsol[0]+fi)
    return([xv,zv])
    
In [5]:
#param=[V,om,r, fi]
param=[0.7,0.7]
param1=[param[0],param[1],0.27,pi/6]

func(0,param1)
Out[5]:
-0.09449999999999999

A bicikli sebessége: $V= 0.7c$, és $\omega R = 0.7 c$

In [6]:
rvec=linspace(0,1,100)
#param=[V,om]
param=[0.7,0.7]

close('all')
#figure(figsize=(12, 12))

# Two subplots, unpack the axes array immediately
fig, (ax1, ax2) = subplots(1, 2,figsize=(16, 8),sharex=True)

ax1.set_title('A bicikli rendszerében',fontsize=16)
ax2.set_title('Laboratóriumi rendszerben',fontsize=16)
ax1.set_aspect('equal')
ax2.set_aspect('equal')

fivec=linspace(0,2*pi,18)

tt=linspace(0,2*pi,100)
ax1.plot(cos(tt),sin(tt),color='k')

for fi in fivec:
    ax1.plot([0,cos(fi)],[0,sin(fi)],color='k')

for fi in fivec:
    xx=[]
    zz=[]
    for rr in rvec:
        
        xz=flywheel(rr,fi,param)

        xx.append(xz[0])
        zz.append(xz[1])
    
    ax2.plot(xx,zz,color='blue')

fivec=linspace(0,2*pi,100)
xxlast=[]  
zzlast=[]
for fi in fivec:
    xzlast=flywheel(1,fi,param)
    xxlast.append(xzlast[0])
    zzlast.append(xzlast[1])

ax2.plot(xxlast,zzlast,color='red')

#tight_layout()

ax1.grid();
ax2.grid();
In [ ]: